Traditional virtual desktop environments supported by virtual machines (VM) present a fixed set of pre-installed applications and files to a user. Typically, the user is unable to request customizations of the environment itself to accommodate a sudden need for a new set of applications. One main reason for this restriction is that the user environment is cloned from a base image that has the applications installed, or in more dynamic environments, the application set might be based on the groups a user belongs to and what the application needs are for these groups.
A new set of applications may be provided by adding virtual disks to a particular user's VM, but the VM is usually restricted in the number of virtual disks it can support, in part because booting up the VM with too many virtual disks can impact the power-on performance of the VM. As a result, a single virtual disk is typically configured to cover a large set of applications, and the set of applications that can be presented to the user is not very flexible. Furthermore, in contrast to virtual desktop environments where the need for a diverse set of applications might not be a major issue, it becomes a bigger issue in cloud environments where the user base might have very diverse application requirements.